
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_I10]
/*-------------------------------------------------------*/        
/*---Empresa              : OFISIS S.A.                --*/        
/*---Cliente              : OFISIS                  --*/        
/*---Sistema              : Presupuesto                --*/        
/*---M©dulo               : Empresa                    --*/        
/*---Programa             : Grabaci©n Cabecera         --*/        
/*---                       Movimiento Bancos(Ingresos)--*/        
/*---Script               : tcmovi_b.sql               --*/        
/*---Nombre SP            : SP_TCMOVI_BANC_I10         --*/        
/*---Desarrollado por     : E.G.T.                     --*/        
/*---Fecha Creaci©n       : 02/01/2012                 --*/        
/*---Base Datos           : Microsoft Sql Server       --*/        
/*---Versi©n              : 8.0                        --*/        
/*---Invoca a SP          :                            --*/         
/*-------------------------------------------------------*/          
/*---Detalle Modificaciön : Prestamos Bancarios        --*/          
/*-------------------------------------------------------*/          
/*-------------------------------------------------------*/          
/*---Comentarios                                       --*/          
/*---                                                  --*/          
/*---                                                  --*/          
/*-------------------------------------------------------*/          
/*-------------------------------------------------------*/          
/*--- Drop Proc SP_TCMOVI_BANC_I10                     --*/          
/*--- Grant Execute on SP_TCMOVI_BANC_I10 to public    --*/           
/*--- Exec SP_TCMOVI_BANC_I10                          --*/          
/*-------------------------------------------------------*/          
      
        
As        
Declare           
   @VNCO_NUEV_NUME TD_IN_001,           
   @VSCO_NUEV_CHAR TD_VC_008,          
   @VNNU_REGI      TD_IN_001,          
   @VSST_INTE_BACH TD_VC_001,          
   @VSTI_OPNI_CARG TD_VC_003,          
   @VSTI_OPNI_ABON TD_VC_003,      
      
@ISCO_EMPR   TD_VC_002,           
 @ISCO_USUA_MODI TD_VC_008_USUA,          
 @ISCO_BANC   TD_VC_003,           
 @ISNU_CNTA_BANC TD_VC_020,          
 @ISAA_BNCO   TD_VC_004,           
 @ISMM_BNCO   TD_VC_002,           
 @ISTI_MOVI_BANC TD_VC_001,            
 @ISNU_COMP_BANC TD_VC_008,           
 @IDFE_OPER   TD_DT_001,           
 @ISCO_TIPO_OPER TD_VC_003,          
 @ISCO_SUBR   TD_VC_003,           
 @ISCO_TIPO_DOCU TD_VC_003,           
 @ISNU_DOCU_BANC TD_VC_020,           
 @INFA_TIPO_CAMB TD_NU_015_006,        
 @INFA_CAMB_EXTR TD_NU_015_006,        
 @ISCO_BANC_CHEQ TD_VC_003,           
 @ISNU_CHEQ   TD_VC_020,          
 @INIM_MOVI   TD_NU_016_004,           
 @ISTI_ENTI   TD_VC_001,          
 @ISCO_ENTI   TD_VC_020,           
 @ISDE_NOMB_ORDE TD_VC_100,           
 @ISSI_SOLO_BANC TD_VC_001_SINO,           
 @ISDE_OBSE   TD_VC_100,           
 @ISTI_CORR_INEG TD_VC_001,          
 @INUL_CORR_INGR TD_IN_001,          
 @INUL_CORR_INEG TD_IN_001,          
 @IDFE_DISP   TD_DT_001,          
 @ISCO_ENTR_REND TD_VC_004,          
 @ISCO_UNID_CNTB TD_VC_003,          
 @ISNU_RECI_COBR TD_VC_010,          
 @IDFE_RECI_COBR TD_DT_001,          
 @IDFE_DIFE   TD_DT_001,          
 @ISCO_GRUP_CONC TD_VC_020,          
 @ISNU_SOLI   TD_VC_010,          
 @ISST_ASTO_RESU TD_VC_001,
 @ISST_CALC_CUOT TD_VC_001, 
 @INNU_DIAS_VENC TD_IN_001,
 @INIM_MOVI_INTE TD_NU_016_004  
        
          
Begin Tran MR_TCMOVI_BANC_I02          
  /** inserta en la cabecera de bancos **/          
      
SELECT       
 @ISCO_EMPR = CO_EMPR,           
 @ISCO_USUA_MODI = CO_USUA_MODI,          
 @ISCO_BANC = CO_BANC,           
 @ISNU_CNTA_BANC = NU_CNTA_BANC,          
 @ISAA_BNCO = AA_BNCO,           
 @ISMM_BNCO = MM_BNCO,           
 @ISTI_MOVI_BANC = TI_MOVI_BANC,            
 @ISNU_COMP_BANC = NU_COMP_BANC,           
 @IDFE_OPER = FE_OPER,           
 @ISCO_TIPO_OPER = CO_TIPO_OPER,          
 @ISCO_SUBR = CO_SUBR,           
 @ISCO_TIPO_DOCU = CO_TIPO_DOCU,           
 @ISNU_DOCU_BANC = NU_DOCU_BANC,           
 @INFA_TIPO_CAMB = FA_TIPO_CAMB,        
 @INFA_CAMB_EXTR = FA_CAMB_EXTR,        
 @ISCO_BANC_CHEQ = CO_BANC_CHEQ,           
 @ISNU_CHEQ = NU_CHEQ,          
 @INIM_MOVI = IM_MOVI,           
 @ISTI_ENTI = TI_ENTI,          
 @ISCO_ENTI = CO_ENTI,           
 @ISDE_NOMB_ORDE = DE_NOMB_ORDE,           
 @ISSI_SOLO_BANC = SI_SOLO_BANC,           
 @ISDE_OBSE = DE_OBSE,           
 @ISTI_CORR_INEG = TI_CORR_INEG,          
 @INUL_CORR_INGR = UL_CORR_INGR,          
 @INUL_CORR_INEG = UL_CORR_INEG,          
 @IDFE_DISP = FE_DISP,          
 @ISCO_ENTR_REND = CO_ENTR_REND,          
 @ISCO_UNID_CNTB = CO_UNID_CNTB,          
 @ISNU_RECI_COBR = NU_RECI_COBR,          
 @IDFE_RECI_COBR = FE_RECI_COBR,          
 @IDFE_DIFE = FE_DIFE,          
 @ISCO_GRUP_CONC = CO_GRUP_CONC,          
 @ISNU_SOLI = NU_SOLI,          
 @ISST_ASTO_RESU = ST_ASTO_RESU,
 @ISST_CALC_CUOT = ST_CALC_CUOT,
 @INNU_DIAS_VENC = NU_DIAS_VENC,
 @INIM_MOVI_INTE = IM_MOVI_INTE 
 FROM #TWMOVI_BANC_I02  
         
         
 Select @VSST_INTE_BACH = ST_INTE_BACH,          
   @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER          
 From TMPARA_TESO Where CO_EMPR = @ISCO_EMPR          
         
         
 If Rtrim(@ISCO_BANC_CHEQ) = ''          
  Select @ISCO_BANC_CHEQ = NULL          
         
 If Rtrim(@ISNU_CHEQ) = ''          
  Select @ISNU_CHEQ = NULL          
         
 If Rtrim(@ISCO_TIPO_DOCU) = ''           
  Select @ISCO_TIPO_DOCU = NULL          
         
 If Rtrim(@ISCO_ENTR_REND) = ''          
  Select @ISCO_ENTR_REND = NULL          
         
 -- SI LA INTERFASE ES EN LINEA Y DETALLADA, LEE EL CORRELATIVO DEL LIBRO CONTABLE          
 If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND           
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON          
         
  EXEC SP_TTULTI_ASTO_Q01 @ISCO_EMPR,@ISCO_USUA_MODI, @ISCO_UNID_CNTB, @ISCO_TIPO_OPER, @IDFE_OPER,          
@ISNU_COMP_BANC OUTPUT          
         
 Else          
 Begin          
  Select  @VNNU_REGI = Count(*)           
  From    TCMOVI_BANC          
  Where   CO_EMPR = @ISCO_EMPR           
  And CO_UNID_CONC = @ISCO_UNID_CNTB        
  And CO_BANC = @ISCO_BANC           
  And NU_CNTA_BANC = @ISNU_CNTA_BANC           
  And AA_BNCO = @ISAA_BNCO          
  And MM_BNCO = @ISMM_BNCO           
  And TI_MOVI_BANC = 'I'            
  And NU_COMP_BANC = @ISNU_COMP_BANC           
          
  If @VNNU_REGI > 0 OR RTRIM(ISNULL(@ISNU_COMP_BANC, '')) = ''          
  Begin                   
   Select  @VSCO_NUEV_CHAR = ISNULL(MAX(NU_COMP_BANC), '0')          
   From    TCMOVI_BANC           
   Where   CO_EMPR = @ISCO_EMPR           
   And CO_UNID_CONC = @ISCO_UNID_CNTB        
   And CO_BANC = @ISCO_BANC           
   And NU_CNTA_BANC = @ISNU_CNTA_BANC           
   And AA_BNCO = @ISAA_BNCO          
   And MM_BNCO = @ISMM_BNCO           
   And TI_MOVI_BANC = 'I'            
   And NU_COMP_BANC LIKE '000%'          
           
   Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1          
           
   Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)          
           
   -- RELLENA DE CEROS HASTA 8 CARACTERES           
   Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'')          
+LTRIM(RTRIM(@VSCO_NUEV_CHAR))                    
           
   Select @ISNU_COMP_BANC = @VSCO_NUEV_CHAR           
  End          
 End          
         
         
 Insert Into TCMOVI_BANC(          
 CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,           
 FE_OPER, CO_TIPO_OPER, CO_SUBR, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, FA_CAMB_EXTR, CO_BANC_CHEQ, NU_CHEQ,          
 IM_MOVI, FE_CHEQ,  FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, TI_ENTI, CO_ENTI, DE_NOMB_ORDE,           
 SI_SOLO_BANC, SI_OPER_CONC, AA_CONC, MM_CONC, DE_OBSE, ST_CONT, NU_PROC, TI_SITU,          
 CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ENTR_REND, CO_UNID_CONC, NU_RECI_COBR, FE_RECI_COBR,          
 FE_DIFE, CO_GRUP_CONC, NU_SOLI, ST_CALC_CUOT, NU_DIAS_VENC, IM_MOVI_INTE )
 Values (          
 @ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,           
 @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC, @INFA_TIPO_CAMB, @INFA_CAMB_EXTR,         
 @ISCO_BANC_CHEQ, @ISNU_CHEQ, @INIM_MOVI, NULL,  @IDFE_DISP, NULL, NULL, @ISTI_ENTI, @ISCO_ENTI,           
 @ISDE_NOMB_ORDE, @ISSI_SOLO_BANC, 'N', NULL, NULL, @ISDE_OBSE, 'N', NULL, 'ACT',@ISCO_USUA_MODI,GETDATE(),          
@ISCO_USUA_MODI, GETDATE(),           
 @ISCO_ENTR_REND, @ISCO_UNID_CNTB, @ISNU_RECI_COBR, @IDFE_RECI_COBR, @IDFE_DIFE, @ISCO_GRUP_CONC,           
 @ISNU_SOLI,  @ISST_CALC_CUOT,  @INNU_DIAS_VENC, @INIM_MOVI_INTE )          
         
 If @@error <> 0          
 Begin          
  Rollback tran          
  Return          
 End              
         
         
 /* Actualizando Estado y Fecha Liquidaci®n Solicitud Caja */          
         
 Update  TMSOLI_CABA           
 Set TI_SITU = 'LIQ',           
  FE_LIQU = @IDFE_OPER,          
  CO_USUA_MODI = @ISCO_USUA_MODI,           
  FE_USUA_MODI = GETDATE()          
 Where   CO_EMPR = @ISCO_EMPR          
 And NU_SOLI = @ISNU_SOLI          
         
 If @@error <> 0          
 Begin          
  rollback tran          
  return          
 End            
         
 /* ----------- Actualiza los Correlativos ------------------ */          
 If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR           
  @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON          
 Begin              
  If @ISTI_CORR_INEG = 'N'          
  Begin          
   Select @INUL_CORR_INGR = UL_CORR_INGR           
   From   TMSABA_MENS          
   WHERE  CO_EMPR = @ISCO_EMPR            
   And CO_BANC = @ISCO_BANC           
   And NU_CNTA_BANC = @ISNU_CNTA_BANC           
   And AA_BNCO = @ISAA_BNCO           
   And MM_BNCO = @ISMM_BNCO           
           
   Update TMSABA_MENS          
   Set UL_CORR_INGR = @INUL_CORR_INGR + 1,           
   CO_USUA_MODI = @ISCO_USUA_MODI,           
   FE_USUA_MODI = GETDATE()          
   Where  CO_EMPR = @ISCO_EMPR           
   And CO_BANC = @ISCO_BANC           
   And NU_CNTA_BANC = @ISNU_CNTA_BANC         
   And AA_BNCO = @ISAA_BNCO           
   And MM_BNCO = @ISMM_BNCO          
           
   If @@error <> 0          
   Begin          
    Rollback tran          
    Return          
   End          
  End          
  Else          
  Begin          
   Select @INUL_CORR_INEG = UL_CORR_INEG           
   From   TMSABA_MENS          
   WHERE  CO_EMPR = @ISCO_EMPR            
   And CO_BANC = @ISCO_BANC           
   And NU_CNTA_BANC = @ISNU_CNTA_BANC           
   And AA_BNCO = @ISAA_BNCO           
   And MM_BNCO = @ISMM_BNCO           
           
   Update TMSABA_MENS          
   Set  UL_CORR_INEG = @INUL_CORR_INEG + 1,           
   CO_USUA_MODI = @ISCO_USUA_MODI,           
   FE_USUA_MODI = GETDATE()          
   Where  CO_EMPR = @ISCO_EMPR           
   And CO_BANC = @ISCO_BANC           
   And NU_CNTA_BANC = @ISNU_CNTA_BANC           
   And AA_BNCO = @ISAA_BNCO           
   And MM_BNCO = @ISMM_BNCO          
           
   If @@error <> 0          
   Begin          
    Rollback tran          
    Return          
   End          
  End          
 End           
         
 Commit Tran          
          
SELECT @ISNU_COMP_BANC          
RETURN          
          
/*----------------------- Fin ---------------------------*/ 
GO
